#ifndef xorcrypto_h
#define xorcrypto_h

#ifdef __cplusplus
extern "C"
{
#endif

// 异或加解密算法：在异或加解密中，这个过程是可逆的。
// 加密：将明文与密钥进行逐位异或运算得到密文。
// 解密：密文和同样的密钥进行异或运算得到明文。
// return：0-成功，非0-失败
int XORCrypto(const char* pInData, unsigned int uiInLen
              , const char* pKey, unsigned int uiKeyLen
              , char* pOutData, unsigned int uiOutLen);

// 异或加解密算法：在异或加解密中，这个过程是可逆的。
// 加密：将明文与密钥进行逐位异或运算得到密文。
// 解密：密文和同样的密钥进行异或运算得到明文。
// return：0-成功，非0-失败
int XORCryptoByDefaultKey(const char* pInData, unsigned int uiInLen
                          , char* pOutData, unsigned int uiOutLen);

#ifdef __cplusplus
} // extern "C"
#endif

#endif // xorcrypto_h
